GdkWindow: Fix shape handling for native windows
authorAlexander Larsson <alexl@redhat.com>
Wed, 15 May 2013 08:55:59 +0000 (10:55 +0200)
committerAlexander Larsson <alexl@redhat.com>
Wed, 15 May 2013 09:08:35 +0000 (11:08 +0200)
commita60ccd3672467efb454b121993febc36f33cbc79
treed0de361f1c30a6a5c23f87ecc12ee8e2913245ee
parent85645e4852b773e49270395498c54484ce4f982f
GdkWindow: Fix shape handling for native windows

We don't track the full clip for each window anymore, as this
is not useful when no windows are opaque. However, we still
need the full clip for the shape, so its calculated manually.

However, it was previously only recalculated when the clip changes
which doesn't correctly handle the case of a sibling geometry changing.

So, instead of doing this directly when geometry changes we just
set a bit in the toplevel whenever some window geometry changes, and
we then handle this in process_updates, updating the shape for all
native windows. This should be ok performance-wise because we don't
expect a lot of native children.
gdk/gdkinternals.h
gdk/gdkwindow.c